{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 281,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.350200Z",
     "start_time": "2021-11-17T08:55:48.347200Z"
    }
   },
   "outputs": [],
   "source": [
    "import time"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 定义一个类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-24T10:56:10.282800Z",
     "start_time": "2021-11-24T10:56:10.273800Z"
    }
   },
   "outputs": [],
   "source": [
    "class Warrior(object):\n",
    "    '''\n",
    "    战士职业的类\n",
    "    '''\n",
    "    def __init__(self, name): # 实例化的传入的名字\n",
    "        self.name = name\n",
    "        self.blood = 100\n",
    "        self.damage = 31\n",
    "        self.defance = 30\n",
    "        self.x = 0\n",
    "        self.y = 0\n",
    "    \n",
    "    def move(self):\n",
    "        # 移动\n",
    "        self.x += 1 \n",
    "        self.y += 1 \n",
    "        print('{name}移动到坐标:({x},{y})'.format(\n",
    "            name = self.name,\n",
    "            x = self.x,\n",
    "            y = self.y,\n",
    "            )\n",
    "         ) #这里的self.name就是获取我们传入的name\n",
    "        \n",
    "    def attack(self,targert):\n",
    "        # 发起攻击\n",
    "        targert.blood -= self.damage -  targert.defance\n",
    "#         targert.blood = targert.blood -  (self.damage -  targert.defance)\n",
    "        print('{name} 攻击 {targert} ，造成 {hurt} 点伤害。'.format(\n",
    "            name = self.name,\n",
    "            targert = targert.name,\n",
    "            hurt = self.damage -  targert.defance,\n",
    "            )\n",
    "         ) #这里的self.name就是获取我们传入的name\n",
    "        \n",
    "    def hurt(self,damage):\n",
    "        # 受到伤害\n",
    "        self.blood -= damage -  self.defance\n",
    "#         self.blood = self.blood - (damage -  self.defance)\n",
    "        #这里可以放其他制作细节\n",
    "        print('{name} 受到 {hurt} 点伤害。当前生命值: {blood} '.format(\n",
    "            name = self.name, \n",
    "            hurt = damage - self.defance, \n",
    "            blood = self.blood,\n",
    "            )\n",
    "         )\n",
    "    \n",
    "    def medicine(self):\n",
    "        # 恢复技能\n",
    "        blood = self.blood\n",
    "        if self.blood  < 60:\n",
    "            self.blood += 40\n",
    "            recover_point = 40\n",
    "        else:\n",
    "            self.blood = 100\n",
    "            recover_point = 100 - blood\n",
    "        print('{name} 恢复了 {point} 点生命。当前生命值: {blood} '.format(\n",
    "            name = self.name, \n",
    "            point = recover_point, \n",
    "            blood = self.blood,\n",
    "            )\n",
    "         )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 类的复用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 283,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.490200Z",
     "start_time": "2021-11-17T08:55:48.485200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "名字：Warrior A\n",
      "血量：100\n",
      "攻击力：31\n",
      "防御力：30\n"
     ]
    }
   ],
   "source": [
    "a = Warrior('Warrior A')\n",
    "print('名字：{}'.format(a.name))\n",
    "print('血量：{}'.format(a.blood))\n",
    "print('攻击力：{}'.format(a.damage))\n",
    "print('防御力：{}'.format(a.defance))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 284,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.511200Z",
     "start_time": "2021-11-17T08:55:48.496200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "血量：80\n"
     ]
    }
   ],
   "source": [
    "a.blood = 80\n",
    "print('血量：{}'.format(a.blood))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 285,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.526200Z",
     "start_time": "2021-11-17T08:55:48.513200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warrior A移动到坐标:(1,1)\n",
      "Warrior A移动到坐标:(2,2)\n",
      "Warrior A移动到坐标:(3,3)\n"
     ]
    }
   ],
   "source": [
    "a.move()\n",
    "a.move()\n",
    "a.move()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 286,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.539200Z",
     "start_time": "2021-11-17T08:55:48.529200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "名字：Wooden Man\n",
      "血量：100\n",
      "攻击力：31\n",
      "防御力：30\n"
     ]
    }
   ],
   "source": [
    "b = Warrior('Wooden Man')\n",
    "print('名字：{}'.format(b.name))\n",
    "print('血量：{}'.format(b.blood))\n",
    "print('攻击力：{}'.format(b.damage))\n",
    "print('防御力：{}'.format(b.defance))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 287,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.553200Z",
     "start_time": "2021-11-17T08:55:48.542200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warrior A 攻击 Wooden Man ，造成 1 点伤害。\n",
      "Wooden Man 受到 1 点伤害。当前生命值: 98 \n"
     ]
    }
   ],
   "source": [
    "a.attack(b)\n",
    "b.hurt(a.damage)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 288,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.569200Z",
     "start_time": "2021-11-17T08:55:48.555200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warrior A 受到 15 点伤害。当前生命值: 65 \n"
     ]
    }
   ],
   "source": [
    "a.hurt(45)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 289,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.585200Z",
     "start_time": "2021-11-17T08:55:48.571200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warrior A 恢复了 35 点生命。当前生命值: 100 \n"
     ]
    }
   ],
   "source": [
    "a.medicine()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 类的继承"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 290,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.604200Z",
     "start_time": "2021-11-17T08:55:48.593200Z"
    }
   },
   "outputs": [],
   "source": [
    "class Arthur(Warrior):\n",
    "    def shield(self):\n",
    "        self.defance += 10\n",
    "        print('{name}使用了 《圣盾》 技能，防御力增加 10 '.format(name = self.name))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 291,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.618200Z",
     "start_time": "2021-11-17T08:55:48.607200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "名字：Arthur\n",
      "血量：100\n",
      "攻击力：31\n",
      "防御力：30\n"
     ]
    }
   ],
   "source": [
    "a = Arthur('Arthur')\n",
    "print('名字：{}'.format(a.name))\n",
    "print('血量：{}'.format(a.blood))\n",
    "print('攻击力：{}'.format(a.damage))\n",
    "print('防御力：{}'.format(a.defance))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 292,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.633200Z",
     "start_time": "2021-11-17T08:55:48.620200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Arthur使用了 《圣盾》 技能，防御力增加 10 \n",
      "防御力：40\n"
     ]
    }
   ],
   "source": [
    "a.shield()\n",
    "print('防御力：{}'.format(a.defance))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 类的多态"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 293,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.683200Z",
     "start_time": "2021-11-17T08:55:48.676200Z"
    }
   },
   "outputs": [],
   "source": [
    "class SuperWarrior(Warrior):\n",
    "    def attack(self,targert):\n",
    "    # 发起攻击\n",
    "        targert.blood -= self.damage + 10 -  targert.defance\n",
    "#         targert.blood = targert.blood -  (self.damage -  targert.defance)\n",
    "        print('{name} 攻击 {targert} ，造成 {hurt} 点伤害。'.format(\n",
    "            name = self.name,\n",
    "            targert = targert.name,\n",
    "            hurt = self.damage -  targert.defance + 10,\n",
    "            )\n",
    "         ) #这里的self.name就是获取我们传入的name\n",
    "    \n",
    "    \n",
    "    def medicine(self):\n",
    "        # 恢复技能\n",
    "        blood = self.blood\n",
    "        if self.blood  < 50:\n",
    "            self.blood += 40 + 10\n",
    "            recover_point = 40 + 10\n",
    "        else:\n",
    "            self.blood = 100\n",
    "            recover_point = 100 - blood\n",
    "        print('{name} 恢复了 {point} 点生命。当前生命值: {blood} '.format(\n",
    "            name = self.name, \n",
    "            point = recover_point, \n",
    "            blood = self.blood,\n",
    "            )\n",
    "         )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 294,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.698200Z",
     "start_time": "2021-11-17T08:55:48.686200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "攻击力：31\n",
      "攻击力：31\n"
     ]
    }
   ],
   "source": [
    "a = Warrior('Warrior')\n",
    "b = SuperWarrior('SuperWarrior')\n",
    "print('攻击力：{}'.format(a.damage))\n",
    "print('攻击力：{}'.format(b.damage))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 295,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.717200Z",
     "start_time": "2021-11-17T08:55:48.700200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warrior 攻击 SuperWarrior ，造成 1 点伤害。\n",
      "SuperWarrior 攻击 Warrior ，造成 11 点伤害。\n"
     ]
    }
   ],
   "source": [
    "a.attack(b)\n",
    "b.attack(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 296,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.743200Z",
     "start_time": "2021-11-17T08:55:48.720200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warrior 恢复了 40 点生命。当前生命值: 90 \n",
      "SuperWarrior 恢复了 50 点生命。当前生命值: 100 \n"
     ]
    }
   ],
   "source": [
    "a.blood = 50\n",
    "b.blood = 50\n",
    "a.medicine()\n",
    "b.medicine()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 课后练习"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "继承战士类Warrior自己改写一个刺客类,需要改写刺客的面板属性，攻击力强比战士多10点，防御力比战士少10点。\n",
    "刺客有两个技能：\n",
    " 《专注》 使用后可以提升10点攻击力\n",
    " 《萃毒》 使用后武器带有毒性，收到攻击者还会受到3次持续伤害，每次5点伤害\n",
    " 最后用代码进行测试，看看技能是否能够产生要求的效果。\n",
    " (Tip:为了实现武器带毒效果，你必须在类属性里增加一个武器是否带毒的属性,还要改写attack方法，判断武器是否带毒，以便产生不同的攻击效果。)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-24T10:56:15.882800Z",
     "start_time": "2021-11-24T10:56:15.872800Z"
    }
   },
   "outputs": [],
   "source": [
    "class Assassin(Warrior):\n",
    "    def __init__(self, name): # 实例化的传入的名字\n",
    "        self.name = name\n",
    "        self.blood = 100\n",
    "        self.damage = 41\n",
    "        self.defance = 20\n",
    "        self.x = 0\n",
    "        self.y = 0\n",
    "        self.poisonous = False\n",
    "        \n",
    "        \n",
    "    def attack(self,targert):\n",
    "        # 发起攻击\n",
    "        if self.poisonous == False:\n",
    "            targert.blood -= self.damage -  targert.defance\n",
    "    #         targert.blood = targert.blood -  (self.damage -  targert.defance)\n",
    "            print('{name} 攻击 {targert} ，造成 {hurt} 点伤害。'.format(\n",
    "                name = self.name,\n",
    "                targert = targert.name,\n",
    "                hurt = self.damage -  targert.defance,\n",
    "                )\n",
    "             ) \n",
    "        else:\n",
    "            targert.blood -= self.damage -  targert.defance\n",
    "            print('{name} 攻击 {targert} ，造成 {hurt} 点伤害。'.format(\n",
    "                name = self.name,\n",
    "                targert = targert.name,\n",
    "                hurt = self.damage -  targert.defance,\n",
    "                )\n",
    "             ) \n",
    "            for i in range(3):\n",
    "                targert.blood -= 5\n",
    "                print('{targert} 中毒 ，收到 {hurt} 点伤害。'.format(\n",
    "                    targert = targert.name,\n",
    "                    hurt = 5,\n",
    "                    )\n",
    "                 ) \n",
    "        \n",
    "    def attention(self):\n",
    "        self.damage += 10\n",
    "        print('{name} 使用了技能《专注》，攻击力提升至10！'.format(\n",
    "            name = self.name,\n",
    "            )\n",
    "         )\n",
    "        \n",
    "    def poison(self):\n",
    "        self.poisonous = True\n",
    "        print('{name} 使用了技能《淬毒》！'.format(\n",
    "            name = self.name\n",
    "            )\n",
    "         )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-24T10:56:21.570800Z",
     "start_time": "2021-11-24T10:56:21.565800Z"
    }
   },
   "outputs": [],
   "source": [
    "a = Warrior('Warrior')\n",
    "b = Assassin('Assassin')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-24T10:56:24.712800Z",
     "start_time": "2021-11-24T10:56:24.706800Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Assassin 攻击 Warrior ，造成 11 点伤害。\n"
     ]
    }
   ],
   "source": [
    "b.attack(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-24T10:56:33.901800Z",
     "start_time": "2021-11-24T10:56:33.895800Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Assassin 使用了技能《专注》，攻击力提升至10！\n",
      "51\n",
      "Assassin 攻击 Warrior ，造成 21 点伤害。\n"
     ]
    }
   ],
   "source": [
    "b.attention()\n",
    "print(b.damage)\n",
    "b.attack(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 301,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-17T08:55:48.933200Z",
     "start_time": "2021-11-17T08:55:48.929200Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Assassin 使用了技能《淬毒》！\n",
      "Assassin 攻击 Warrior ，造成 21 点伤害。\n",
      "Warrior 中毒 ，收到 5 点伤害。\n",
      "Warrior 中毒 ，收到 5 点伤害。\n",
      "Warrior 中毒 ，收到 5 点伤害。\n"
     ]
    }
   ],
   "source": [
    "b.poison()\n",
    "b.attack(a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 思考题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 专注技能可以无限次使用，这是不合理的，如果专注使用之后只能在后续的三次攻击有效，请改写你的代码。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-24T10:57:28.016800Z",
     "start_time": "2021-11-24T10:57:28.006800Z"
    }
   },
   "outputs": [],
   "source": [
    "class Assassin(Warrior):\n",
    "    def __init__(self, name): # 实例化的传入的名字\n",
    "        self.name = name\n",
    "        self.blood = 100\n",
    "        self.damage = 41\n",
    "        self.defance = 20\n",
    "        self.x = 0\n",
    "        self.y = 0\n",
    "        self.poisonous = False\n",
    "        self.is_concentrating = 0\n",
    "        self.additional_damage = 0\n",
    "                \n",
    "    def attack(self,targert):\n",
    "        # 发起攻击\n",
    "        self.concentrating()\n",
    "        \n",
    "        targert.blood -= self.damage + self.additional_damage -  targert.defance\n",
    "        print('{name} 攻击 {targert} ，造成 {hurt} 点伤害。'.format(\n",
    "            name = self.name,\n",
    "            targert = targert.name,\n",
    "            hurt = self.damage + self.additional_damage -  targert.defance,\n",
    "            )\n",
    "         )\n",
    "        if self.poisonous == True:\n",
    "            self.poisoning(targert)\n",
    "                \n",
    "    def concentrate(self):\n",
    "        if self.is_concentrating == 0:\n",
    "            self.is_concentrating = 3\n",
    "            self.additional_damage = 10\n",
    "            print('{name} 使用了技能《专注》，攻击力提升10！'.format(\n",
    "                name = self.name,\n",
    "                )\n",
    "             )\n",
    "        else:\n",
    "            print('你已经使用过技能《专注》不能重复使用。')\n",
    "                  \n",
    "                  \n",
    "    def concentrating(self):\n",
    "        if self.is_concentrating > 0:\n",
    "            self.is_concentrating -= 1         \n",
    "        else:\n",
    "            self.additional_damage = 0\n",
    "                  \n",
    "                  \n",
    "    def poison(self):\n",
    "        self.poisonous = True\n",
    "        print('{name} 使用了技能《淬毒》！'.format(\n",
    "            name = self.name\n",
    "            )\n",
    "         )\n",
    "                  \n",
    "    def poisoning(self,targert):\n",
    "        for i in range(3):\n",
    "            targert.blood -= 5\n",
    "            print('{targert} 中毒 ，收到 {hurt} 点伤害。'.format(\n",
    "                targert = targert.name,\n",
    "                hurt = 5,\n",
    "                )\n",
    "             ) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-24T10:57:31.075800Z",
     "start_time": "2021-11-24T10:57:31.070800Z"
    }
   },
   "outputs": [],
   "source": [
    "aa = Assassin('aa')\n",
    "bb = Warrior('bb')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-21T08:50:10.176000Z",
     "start_time": "2021-11-21T08:50:10.172000Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用技能前\n",
      "aa 攻击 bb ，造成 11 点伤害。\n",
      "aa 攻击 bb ，造成 11 点伤害。\n",
      "**************************************************\n",
      "aa 使用了技能《专注》，攻击力提升10！\n",
      "**************************************************\n",
      "使用技能后\n",
      "第一次攻击\n",
      "aa 攻击 bb ，造成 21 点伤害。\n",
      "第二次攻击\n",
      "aa 攻击 bb ，造成 21 点伤害。\n",
      "第三次攻击\n",
      "aa 攻击 bb ，造成 21 点伤害。\n",
      "第四次攻击\n",
      "aa 攻击 bb ，造成 11 点伤害。\n"
     ]
    }
   ],
   "source": [
    "print('使用技能前')\n",
    "aa.attack(bb)\n",
    "aa.attack(bb)\n",
    "print('*'*50)\n",
    "aa.concentrate()\n",
    "print('*'*50)\n",
    "print('使用技能后')\n",
    "print('第一次攻击')\n",
    "aa.attack(bb)\n",
    "print('第二次攻击')\n",
    "aa.attack(bb)\n",
    "print('第三次攻击')\n",
    "aa.attack(bb)\n",
    "\n",
    "\n",
    "print('第四次攻击')\n",
    "aa.attack(bb)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-11-21T08:50:21.859000Z",
     "start_time": "2021-11-21T08:50:21.855000Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "aa 使用了技能《专注》，攻击力提升10！\n",
      "你已经使用过技能《专注》不能重复使用。\n"
     ]
    }
   ],
   "source": [
    "aa.concentrate()\n",
    "aa.concentrate()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "341.458px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
